package com.atguigu.book.service;

import com.atguigu.book.pojo.Cart;
import com.atguigu.book.pojo.CartItem;
import com.atguigu.book.pojo.User;
import javassist.expr.Cast;

import java.util.List;

/**
 * @InterfaceName: CartItemService
 * @Description:
 * @Author: wty
 * @Date: 2022/12/13
 */

public interface CartItemService {
    /**
     * @param
     * @return java.lang.String
     * @description 新增购物车项
     * @param: bookId
     * @date 2022/12/13 14:42
     * @author wty
     **/
    public void addCartItem(CartItem cartItem);

    /**
     * @param
     * @return void
     * @description 修改特定的购物车项
     * @date 2022/12/13 14:43
     * @author wty
     **/
    public void updateCartItemBuyCount(CartItem cartItem);

    /**
     * @param
     * @return void
     * @description 判断当前用户的购物车中是否有这本书的CartItem, 有就update, 无就add
     * @param: cartItem
     * @date 2022/12/13 14:58
     * @author wty
     **/
    public void addOrUpdateCartItem(CartItem cartItem, Cart cart);

    /**
     * @param
     * @return java.util.List<com.atguigu.book.pojo.CartItem>
     * @description 获取指定用户的所有购物车项列表，需要注意方法内部会查询book的详细信息
     * @param: user
     * @date 2022/12/13 17:58
     * @author wty
     **/
    List<CartItem> getCartItemList(User user);

    /**
     * @param
     * @return com.atguigu.book.pojo.Cart
     * @description 加载特定用户的购物车信息
     * @param: user
     * @date 2022/12/13 15:17
     * @author wty
     **/
    public Cart getCart(User user);


    public void delCartItem(CartItem cartItem);
}
